home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / G-Games / (c)ge.d64 / soutrains.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  4KB  |  134 lines

  1. 100 DIMA$(12),P%(18),T%(8,3):CM=54272
  2. 110 V1=54296:W1=54276:A1=54277:H1=54273:L=54272:POKE53281,0:POKE53280,5
  3. 150 I=RND(-TI):GOSUB9000
  4. 160 F=0:M=1:U=1:X=160:Y=81:Z=1024
  5. 200 D$=""
  6. 210 A$(0)=" [223][223][157][157][157][223][146] [223][157][157][157][223][223][146] "
  7. 220 A$(1)="[223][146] *[157][157][157][146][223][223][146] "
  8. 230 A$(2)="[223][223][157][157][146] [223][157][157]*[146] "
  9. 240 A$(3)="[169][146][169][157][157][169] [157][157] *"
  10. 250 A$(4)="[169][146][169] [157][157][157][169] *"
  11. 260 A$(5)="":A$(7)=""
  12. 270 A$(6)=" *[146] [157][157][157]***[146][157][157][157] *[146] "
  13. 280 A$(8)=" [223][223][157][157][157]*[146] [223]"
  14. 290 A$(9)=" *[157][157][223][146] [157][157][223][223]"
  15. 300 A$(10)="*[146] [157][157] [169][157][157][169][146][169]"
  16. 310 A$(11)="*[146] [169][157][157][157][146] [169][146][169]"
  17. 320 A$(12)="[169][146][169] [157][157][157][169] [169][157][157][157][146] [169][146][169]"
  18. 330 Z$="":FORI=1TO39:Z$=Z$+" "
  19. 340 NEXT:Z$=Z$+""
  20. 350 IFV<.2THENA$(2)=" [146] [157][157] *[157][157] [146] "
  21. 360 IFV<.4THENA$(8)=" *[146] [157][157][157]   "
  22. 400 FORI=1TO8:T%(I,1)=203:T%(I,2)=-1
  23. 410 T%(I,3)=X:NEXT
  24. 500 PRINT"[147]":FORI=1TO3
  25. 510 GOSUB7000:FORJ=1TO6
  26. 520 GOSUB7100:PRINT" ":NEXTJ,I
  27. 530 GOSUB7000
  28. 540 POKE1105,233:POKE1141,223
  29. 550 POKE1945,95:POKE1981,105
  30. 560 FORI=1TO10:READJ:POKEZ+J,96:NEXT
  31. 600 FORI=65TO82:K$=CHR$(I)
  32. 610 GOSUB7200:IFP%(A)=5THENNEXT
  33. 620 IFRND(1)<.5THENP%(A)=12-P%(A)
  34. 630 PRINT"[145]";K$;"[157]";A$(P%(A)):NEXT
  35. 640 PRINT"  [146][145][164][157]_[165][157][157][163]"
  36. 650 B=TI
  37. 1000 T=TI
  38. 1010 GETK$:IFK$<"A"ORK$>"R"THEN2000
  39. 1020 GOSUB7200:P%(A)=12-P%(A)
  40. 1030 PRINTA$(P%(A))
  41. 2000 D=T%(U,2):P=Z+T%(U,1):K=T%(U,3)
  42. 2010 IFK=XTHEN2050
  43. 2020 IFK=YORK=170ORK=32THEN6000
  44. 2040 D=40/D:IFKAND32THEND=-D
  45. 2050 T%(U,2)=D:POKEP,T%(U,3)
  46. 2060 IFPEEK(P+D)=96THENT%(U,2)=SGN((UAND1)-.5)*40/D:GOTO2000
  47. 2070 POKEP+CM,1:P=P+D:T%(U,3)=PEEK(P):POKEP,Y:POKEP+CM,7
  48. 2080 T%(U,1)=T%(U,1)+D
  49. 2090 FORI=1TO180/M-7*M:NEXT
  50. 2100 U=U+1:IFU>MTHENU=1
  51. 2110 IFTI-T=<800*(1+RND(1))THEN1010
  52. 2115 IFTI-B>14400THEN6300
  53. 2120 IFFTHEN5200
  54. 2130 IFRND(1)<VTHENGOSUB5000
  55. 2140 M=M-(M<N):GOTO1000
  56. 4000 FORI=0TO12:PRINT"[145]";TAB(I)K$
  57. 4010 FORJ=1TO110:NEXTJ,I
  58. 4020 PRINT:RETURN
  59. 4500 GETK$:IFK$<>" "THEN4500
  60. 4510 PRINT"[147]";:RETURN
  61. 5000 Q=6-5*(RND(1)<.5)+INT(3*RND(1))
  62. 5010 K$=CHR$(Q+64):F=1
  63. 5020 PRINTZ$;" POINTS AT ";K$;" CLOSING DOWN SOON"
  64. 5030 PRINT"ABC"
  65. 5040 GOSUB7200:PRINT"[145]";K$:RETURN
  66. 5200 PRINTZ$;:IFF=2THEN5400
  67. 5210 A=Q:GOSUB7205:PRINTA$(6)
  68. 5220 P%(A)=6:F=2:GOTO1000
  69. 5400 F=0:A=Q:P%(A)=0
  70. 5410 PRINT"POINTS NOW CLEAR"
  71. 5420 GOSUB7205:PRINTA$(0):GOTO1000
  72. 6000 B=INT((TI-B)/60)
  73. 6010 PRINTZ$;"CRAAAASH !!!!!"
  74. 6020 S=37:FORI=0TO9:RESTORE:FORJ=1TO9
  75. 6030 READC:POKEP+C,S+I:NEXTJ,I
  76. 6040 FORI=1TO4000:NEXT
  77. 6050 PRINT"[147]YOU SURVIVED FOR";B;"SECONDS"
  78. 6060 PRINT"YOUR SCORE IS";INT(100*(B/240)^(1-V));"%"
  79. 6070 PRINT"PLAY AGAIN (Y/N)"
  80. 6080 GETK$:IFK$="N"THENEND
  81. 6090 IFK$<>"Y"THEN6080
  82. 6100 RESTORE:GOSUB9500:GOTO160
  83. 6300 FORI=0TO2000:NEXT
  84. 6310 PRINT"[147]YOU LASTED OVER FOUR MINUTES!!!"
  85. 6320 PRINT"DOES THE B. C. RAILWAY KNOW ABOUT YOU ?"
  86. 6330 GOTO6070
  87. 7000 PRINT"";:FORJ=1TO37
  88. 7010 PRINT" ";:NEXT:PRINT:RETURN
  89. 7020 S=36:FORI=0TO9:RESTORE:FORJ=1TO9
  90. 7030 READC:POKEP+C,S:NEXTJ
  91. 7040 S=79-S:NEXTI
  92. 7100 PRINT"";:FORK=1TO4
  93. 7110 PRINT" [146]        ";:NEXT:RETURN
  94. 7200 A=ASC(K$)-64
  95. 7205 R=INT(A/5):C=9*(A-5*R)
  96. 7210 PRINTLEFT$(D$,2+7*R);SPC(C);
  97. 7220 RETURN
  98. 8000 DATA -41,-40,-39,1,41,40,39,-1,0
  99. 8010 DATA 1,1,5,5,5,0,0,0,5
  100. 8110 DATA 2,5,0,5,3,5,4,5,4
  101. 8200 DATA 1,1,1,5,5,0,5,0,3
  102. 8210 DATA 2,0,0,5,5,5,5,4,4
  103. 8300 DATA 1,1,1,5,2,0,0,0,3
  104. 8310 DATA 2,0,0,0,3,5,4,4,4,0
  105. 8400 DATA 50,59,68,200,360,398
  106. 8410 DATA 640.678,970,979,988
  107. 9000 PRINT"[147]":GOTO9500
  108. 9010 K$="    TRAINS":GOSUB4000
  109. 9020 K$="    [163][163][163][163][163][163]":GOSUB4000:PRINT
  110. 9030 K$=" BY J.AUGHTON":GOSUB4000
  111. 9040 PRINT"ALWAYS PRESS THE SPACE BAR WHENEVER YOU"
  112. 9050 PRINT" ARE READY TO PROCEED TO THE NEXT PAGE"
  113. 9060 GOSUB4500
  114. 9310 PRINT"TRY TO CONTROL THE TRAINS AS THEY GO"
  115. 9320 PRINT"ROUND THE SYSTEM . EACH OF THE POINTS"
  116. 9330 PRINT"IS LABELLED WITH A LETTER A-R.YOU CAN"
  117. 9340 PRINT"SWITCH THE POINTS BY PRESSING THE KEY"
  118. 9350 PRINT"HAVING THE SAME LETTER.KEEP THEM MOVING"
  119. 9360 PRINT"AS LONG AS YOU CAN!!"
  120. 9370 PRINT"IN THE EVENT OF ANY ACCIDENTS,THE GAME"
  121. 9380 PRINT"STOPS AND YOUR SCORE IS GIVEN"
  122. 9390 PRINT"AT IRREGULAR INTERVALS SOME POINTS MAY"
  123. 9400 PRINT"CLOSE FOR A WHILE FOR REPAIRS.KEEP AN"
  124. 9410 PRINT"EYE ON THE TOP OF THE SCREEN FOR DETAILS"
  125. 9420 GOSUB4500
  126. 9500 PRINT"CHOOSE DIFFICULTY LEVEL 1,2 OR 3"
  127. 9505 PRINT"1=EASY...3=HARD...--YOUR CHOICE";
  128. 9510 INPUT"1[157][157][157]";K$:V=ASC(K$)-48
  129. 9520 IFV<1ORV>3THEN9505
  130. 9530 FORI=1TO9+18*(V-1):READS:NEXT
  131. 9540 FORI=1TO18:READP%(I):NEXT
  132. 9550 FORI=0TO18*(3-V):READS:NEXT
  133. 9560 N=2+2*V:V=V/7:RETURN
  134.